Intent Filters এবং Data Passing

Mobile App Development - অ্যান্ড্রয়েড ডেভেলপমেন্ট (Android) - Intents এবং Intent Filters
418

Intent Filters এবং Data Passing

Intent Filters এবং Data Passing হল Android অ্যাপ্লিকেশন ডেভেলপমেন্টের দুটি গুরুত্বপূর্ণ অংশ, যা অ্যাপ্লিকেশনের বিভিন্ন কম্পোনেন্ট (যেমন Activities, Services, Broadcast Receivers) এর মধ্যে যোগাযোগ এবং ডেটা বিনিময়ে সহায়তা করে। Intent Filters নির্দিষ্ট করে যে কোন কম্পোনেন্ট একটি Intent গ্রহণ করতে পারে, এবং Data Passing হল Intent এর মাধ্যমে এক কম্পোনেন্ট থেকে অন্য কম্পোনেন্টে ডেটা পাঠানোর পদ্ধতি।

নিচে Intent Filters এবং Data Passing নিয়ে বিস্তারিত আলোচনা করা হলো:


Intent Filters

Intent Filters হল Android এর একটি মেকানিজম, যা নির্ধারণ করে কোন Activity, Service, বা Broadcast Receiver কোন ধরনের Intent গ্রহণ করবে। Intent Filters মূলত AndroidManifest.xml ফাইলে ঘোষণা করা হয় এবং যখন একটি Intent পাঠানো হয়, তখন Android সিস্টেম Intent Filter অনুযায়ী নির্ধারণ করে কোন কম্পোনেন্ট সেই Intent গ্রহণ করবে।

Intent Filters এর মূল উপাদানসমূহ:

  • Action: কোন ধরনের কাজ সম্পন্ন হবে তা নির্ধারণ করে। উদাহরণ: android.intent.action.VIEW
  • Category: Intent এর ক্যাটেগরি নির্ধারণ করে। উদাহরণ: android.intent.category.DEFAULT
  • Data: Intent এ সংযুক্ত ডেটা যেমন URI বা MIME টাইপ উল্লেখ করে।

উদাহরণ: Intent Filter ঘোষণাঃ

<activity android:name=".SecondActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="https" android:host="www.example.com" />
    </intent-filter>
</activity>

উপরের উদাহরণে, SecondActivity একটি Intent Filter ঘোষণা করেছে, যা VIEW অ্যাকশন এবং নির্দিষ্ট https স্কিম ও host সহ URI গ্রহণ করতে সক্ষম।


Data Passing (Intent এর মাধ্যমে ডেটা পাঠানো)

Android অ্যাপে Intent ব্যবহার করে এক কম্পোনেন্ট থেকে অন্য কম্পোনেন্টে ডেটা পাঠানো সাধারণ একটি কাজ। Intent এর মাধ্যমে ডেটা পাঠানোর জন্য Extras ব্যবহার করা হয়। putExtra() মেথডের মাধ্যমে ডেটা Intent এর সাথে যুক্ত করা হয় এবং অন্য কম্পোনেন্ট সেই ডেটা getExtra() মেথড ব্যবহার করে রিসিভ করে।

ধাপ ১: ডেটা পাঠানো (Sending Data)

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("message", "Hello, Second Activity!");
intent.putExtra("number", 42);
startActivity(intent);

উপরের উদাহরণে, putExtra() মেথড ব্যবহার করে দুটি ডেটা (একটি String এবং একটি int) Intent এর মাধ্যমে SecondActivity তে পাঠানো হয়েছে।

ধাপ ২: ডেটা রিসিভ করা (Receiving Data)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    Intent intent = getIntent();
    String message = intent.getStringExtra("message");
    int number = intent.getIntExtra("number", 0);

    // প্রদর্শন করা
    Toast.makeText(this, "Message: " + message + ", Number: " + number, Toast.LENGTH_SHORT).show();
}

এখানে getStringExtra() এবং getIntExtra() মেথড ব্যবহার করে Intent থেকে পাঠানো ডেটা রিসিভ করা হয়েছে। Intent এর মাধ্যমে পাঠানো ডেটা নির্দিষ্ট কী (যেমন "message", "number") ব্যবহার করে রিসিভ করা হয়।


Intent Filters এর মাধ্যমে Data Passing

Intent Filters ব্যবহার করে যখন Implicit Intent পাঠানো হয়, তখন সেই Intent এ Data সংযুক্ত করা যায়। উদাহরণস্বরূপ, আপনি একটি URL বা ছবি প্রদর্শনের জন্য Implicit Intent ব্যবহার করতে পারেন।

উদাহরণ: URL প্রদর্শনের জন্য Intent পাঠানো

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://www.example.com"));
startActivity(intent);

এখানে Intent এ ACTION_VIEW অ্যাকশন এবং একটি URL যুক্ত করা হয়েছে। Android সিস্টেম Intent Filter অনুযায়ী উপযুক্ত কম্পোনেন্ট নির্বাচন করে যা এই URL খোলার জন্য সক্ষম।

উদাহরণ: ইমেজ শেয়ারের Intent

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
startActivity(Intent.createChooser(shareIntent, "Share Image"));

এখানে ACTION_SEND অ্যাকশন এবং একটি Uri যুক্ত করে ইমেজ শেয়ার করা হয়েছে। Intent Filter অনুযায়ী সেই কম্পোনেন্ট এই Intent গ্রহণ করবে, যা ইমেজ শেয়ার করতে সক্ষম।


Intent Filters এবং Data Passing এর উদাহরণ

(ক) Text Sharing Example

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, "This is a text message to share.");
startActivity(Intent.createChooser(shareIntent, "Share via"));

Intent Filter দ্বারা উপযুক্ত কম্পোনেন্ট নির্ধারণ করে Android সিস্টেম এই Intent গ্রহণ করে এবং টেক্সট শেয়ারিং অ্যাপগুলোর লিস্ট প্রদর্শন করবে।

(খ) Custom Action এবং Data Handling

আপনি একটি কাস্টম অ্যাকশন এবং Intent Filter ব্যবহার করে ডেটা পাঠাতে পারেন।

AndroidManifest.xml এ Intent Filter ঘোষণা

<activity android:name=".CustomActivity">
    <intent-filter>
        <action android:name="com.example.CUSTOM_ACTION" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

Custom Intent পাঠানো

Intent intent = new Intent("com.example.CUSTOM_ACTION");
intent.putExtra("custom_data", "Custom Data Passed");
startActivity(intent);

CustomActivity এ ডেটা রিসিভ করা

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_custom);

    Intent intent = getIntent();
    String data = intent.getStringExtra("custom_data");
    Toast.makeText(this, "Data: " + data, Toast.LENGTH_SHORT).show();
}

উপসংহার

Intent Filters এবং Data Passing Android অ্যাপ্লিকেশনের একটি গুরুত্বপূর্ণ অংশ, যা কম্পোনেন্টগুলির মধ্যে যোগাযোগ এবং ডেটা বিনিময় সহজ করে। Intent Filters এর মাধ্যমে নির্ধারণ করা যায় কোন কম্পোনেন্ট কোন ধরনের Intent গ্রহণ করবে এবং Intent এর মাধ্যমে ডেটা পাঠানো ও রিসিভ করা যায়। সঠিকভাবে Intent Filters এবং Data Passing ব্যবহারের মাধ্যমে একটি ইন্টারঅ্যাকটিভ এবং কার্যকর Android অ্যাপ্লিকেশন তৈরি করা সম্ভব।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...